---@meta _

---@class Dewdrop-2.0 一个提供干净下拉菜单界面的库。
---[文档](https://web.archive.org/web/20071012143416/http://wowace.com/wiki/Dewdrop-2.0)
local Dewdrop = {}

---在Dewdrop-2.0中注册给定的父级。设置是从给定的其他参数初始化的。
---@param parent Frame|string 父级框架
---@param ... any 其他参数；[参数](https://web.archive.org/web/20060722085212/http://wiki.wowace.com/index.php/Dewdrop-2.0_API_Documentation#Register.2FOpen_arguments)
function Dewdrop:Register(parent, ...) end

---从Dewdrop-2.0中注销给定的父级。
---@param parent Frame|string 父级框架
function Dewdrop:Unregister(parent) end

--- 打开给定父级上的菜单，内部将使用来自注册表（父级，…）或给定参数的数据进行初始化。
---@param parent Frame|string 父级框架
---@param ... any 其他参数；[参数](https://web.archive.org/web/20060722085212/http://wiki.wowace.com/index.php/Dewdrop-2.0_API_Documentation#Register.2FOpen_arguments)
function Dewdrop:Open(parent, ...) end

---关闭给定级别和子级别
---@param level? number 级别
function Dewdrop:Close(level) end

---刷新给定级别的内容
---@param level? number 级别
function Dewdrop:Refresh(level) end

---在下拉菜单中添加一行。(无参数为空分割行)
---@param ... any 其他参数；[参考文档](https://web.archive.org/web/20080908010827/http://www.wowace.com/wiki/Dewdrop-2.0/AddLine_Arguments)
function Dewdrop:AddLine(...) end

---返回给定的父框架上是否有打开的下拉菜单。
---@param parent Frame|string 父级框架
---@return boolean isOpen
function Dewdrop:IsOpen(parent) end

---返回当前打开的下拉菜单的父级框架，如果没有打开菜单，则返回nil。如果将结果视为布尔值，则可以将其视为`:IsOpen()`。
---@return any parent 当前菜单的父级，如果没有打开菜单，则为nil
function Dewdrop:GetOpenedParent() end

---返回给定的父帧是否已在Dewdrop中注册。
---@return boolean isRegistered 给定的父帧是否已向Dewdrop注册。
function Dewdrop:IsRegistered(parent) end

---在通用表中提供提要以转换为菜单。
---@param menutable table 菜单表
---@param difference? number 差异
---@return boolean success 是否正确找到表中的位置并成功添加行。
function Dewdrop:FeedTable(menutable, difference) end

---在AceOptions数据表中输入数据以变成菜单。
---@param options table AceOptions数据表，[参考文档](https://web.archive.org/web/20080905230725/http://www.wowace.com/wiki/AceOptions_data_table)
---@param difference? number 差异
---@return boolean success 是否正确找到表中的位置并成功添加行。
function Dewdrop:FeedAceOptionsTable(options, difference) end

---将给定处理程序的默认AceOptions数据表选项注入到给定的选项表中。
---@param handler AceAddon 处理程序
---@param options table 各种混入/类都有自己的默认选项。例如AceDB-2.0具有配置文件选项。
function Dewdrop:InjectAceOptionsTable(handler, options) end
